Данная краткая статья является больше лайф-хаком или же заметкой в мире IT.
Параллельно занимаясь разработкой интересного сервера хранения данных, встала задача сделать параллельный исполнитель отложенных задач с ограничением потоков по типам задач, в частности для конвертации видео роликов посредством ffmpeg.
Поняв, что наши программисты на PHP не смогут нормально сделать параллельную очередь, притом continuos очередь, чтобы видео карты не простаивали на серверах, тогда я приступил к разработке на Go и сделал буквально за неделю готовый сервис по приему задач (команд) через HTTP-протокол и их выполнения в параллельном, и не только, режиме с различными опциями.
Сервис в своем роде универсален и подходит для любых типов заданий и выполнения любых команд, поддерживает определение ошибок, повторение задач согласно условиям ошибок, завершение задач при удалении из рабочей очереди.
Я постарался сделать cTRL сервис простым и легконастраиваемым.
Сервис содержит